<template>
  <div>
    <slot></slot>
  </div>
</template>

<script>
export default {
  provide() {
    return {
      form: this
    };
  },
  props: {
    model: {
      type: Object,
      required: true
    },
    rules: {
      type: Object
    }
  },
  methods: {
    validate(cb) {
      // 我现在要遍历所有的keyFormItem的孩子，然后执行他们的validate方法，是不是这种概念，而且我还要知道每个方法执行的结果
      //这里面怎么判断执行的结果
      //[resultPromise]
      const tasks = this.$children
      .filter(item=>item.prop) //过滤掉没有prop属性的item
      .map(item => item.validate())
      //统一处理所有的promise结果
      Promise.all(tasks)
        .then(()=>cb(true))
        .catch(()=>cb(false));
    }
  },
};
</script>

<style scoped >
</style>
